package com.apes.framework.jpa.generator;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * 功能：ApesGenerator 注解
 *
 * @author xul
 * @create 2018-03-13 19:13
 */

@Target({FIELD})
@Retention(RUNTIME)
public @interface ApesGenerator {

    /**
     * 序列代码
     */
    String code();

    /**
     * 描述
     */
    String name();

    /**
     * 实现方式
     */
    Implementation implementation() default Implementation.STANDARD;

    /**
     * 前缀
     */
    String prefix() default "";

    /**
     * 后缀
     */
    String suffix() default "";

    /**
     * Id长度（不够前补0）
     */
    int padding() default 6;

    /**
     * 步
     */
    int increment() default 1;

    /**
     * 下一号码
     */
    int numberNext() default 1;

    /**
     * 是否使用日期序列（如果使用，前缀要含有日期：年，否则单据会重复）
     */
    boolean useDateRange() default false;
}